Skip to content

fix(deploy): repair one-click-deploy.sh prechecks and frontend probe paths - #1363

Merged
groupthinking merged 1 commit into
mainfrom
one-click-deploysh-is-non-functional-stale-precheck-grv-195-77d4
Aug 29, 2026
Merged

fix(deploy): repair one-click-deploy.sh prechecks and frontend probe paths#1363
groupthinking merged 1 commit into
mainfrom
one-click-deploysh-is-non-functional-stale-precheck-grv-195-77d4

Conversation

@groupthinking

Copy link
Copy Markdown
Owner

Canonical issue

Closes #1127

Outcome

scripts/deployment/one-click-deploy.sh no longer aborts at its first gate on files that don't exist, and the image it builds matches the Deployment that consumes it. The topology follows the issue's frontend option: enhanced-framework is the Next.js web app (consistent with NODE_ENV/PORT=3000 and both Services targeting port 3000), while the Python backend remains the separate mcp-server container.

  • REQUIRED_FILES refreshed to paths that exist (drops the never-existent mcp_server.py / learning_app_processor.py, fixes the pre-move k8s/... paths); all kubectl -f paths now use infrastructure/k8s/....
  • The image is built from apps/web/Dockerfile instead of the Python Dockerfile.production.
  • Liveness/readiness probes and the script's post-deploy health check point at GET /api — the health endpoint the web app actually serves (apps/web/src/app/api/route.ts); it serves neither /health nor /ready.
  • The script now cds to the repo root and runs integration tests via pytest tests/integration (tests/integration/test_runner.py doesn't exist).
  • New CI guard tests/unit/test_one_click_deploy_precheck.py (picked up by the existing unit-test job) asserts every REQUIRED_FILES entry and every -f path in the script resolves, so the list can't rot again.

Scope

Risk

  • Risk level: low
  • Failure mode: probe path wrong for the frontend → rollout stalls at readiness (same failure mode as today, no worse).
  • Rollback: revert the commit; the script returns to its prior fail-fast state.

Verification

Head: 3ffb940

  • Focused tests: both checks in tests/unit/test_one_click_deploy_precheck.py pass; bash -n on the script passes
  • Required CI
  • Review threads resolved

Production evidence

Not applicable: no cluster in this environment; the change makes the script/manifest self-consistent and is guarded by the new unit test in CI.

Agent handoff

  • One canonical issue is linked
  • No competing PR implements the same issue (fix: repair one-click deploy paths and production manifests #1155 exists as an earlier draft on an orphaned branch)
  • Acceptance criteria are satisfied
  • Required checks pass on the current head
  • Human decision is requested only for product, security, irreversible infrastructure, or production approval

Agent provenance

…paths

one-click-deploy.sh failed at its first gate: REQUIRED_FILES listed two
files that do not exist anywhere in the repo (mcp_server.py,
learning_app_processor.py) and three pre-move k8s/... paths. Even past
that gate, it built the Python backend image
(infrastructure/docker/Dockerfile.production) for a Deployment container
configured as a Node app on port 3000, so the rollout could never pass
readiness.

enhanced-framework is the Next.js frontend: the manifest sets
NODE_ENV/PORT=3000, both Services target port 3000, and the Python
backend is already deployed as the separate mcp-server container. Make
script and manifest agree on that topology:

- Build the image from apps/web/Dockerfile instead of the Python
  Dockerfile.production.
- Point liveness/readiness probes (and the script's post-deploy health
  check) at GET /api, the health endpoint the web app actually serves;
  it served neither /health nor /ready.
- Refresh REQUIRED_FILES to paths that exist and fix all kubectl
  manifest paths to infrastructure/k8s/....
- cd to the repo root so relative paths work from any invocation dir,
  and run integration tests via pytest (tests/integration/test_runner.py
  does not exist).
- Add tests/unit/test_one_click_deploy_precheck.py, run by CI's unit
  suite, asserting every REQUIRED_FILES entry and every -f path in the
  script resolves, so the list cannot rot again.

Generated with [Linear](https://linear.app/myxstack/issue/GRV-195/one-click-deploysh-is-non-functional-stale-precheck-paths-and-a#agent-session-3eb72d16)

Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>
@linear-code

linear-code Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

GRV-195

@vercel

vercel Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v0-uvai Canceled Canceled v0 Aug 4, 2026 6:08am

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one) (1)
  • [‘architecture-gap’, ‘bug’, ‘ci-cd’, ‘ci/cd’, ‘copilot-rabbit’, ‘documentation’, ‘duplicate’, ‘enhancement’, ‘frontend’, ‘github_actions’, ‘good first issue’, ‘help wanted’, ‘high-priority’, ‘invalid’, ‘javascript’, ‘ml-model’, ‘needs-triage’, ‘pipeline-critical’, ‘placeholder-code’, ‘priority:high’, ‘python’, ‘python:uv’, ‘question’, ‘styling’, ‘tests’, ‘v0’]

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 371588e3-dc5e-40a7-bda5-4cda9a1d3f5d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the python label Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 3ffb940.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

Scanned Files

None

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Agent Completion Truth Gate: BLOCKED

Reasons: invalid_payload

Machine-readable verdict
{
  "details": {
    "collection_errors": [
      "missing_intent_snapshot",
      "missing_agent_run_id",
      "missing_agent_login"
    ],
    "invalid_fields": [
      "policy.agent_login",
      "policy.run_id"
    ]
  },
  "reasons": [
    "invalid_payload"
  ],
  "verdict": "blocked"
}

Workflow evidence

@groupthinking groupthinking self-assigned this Aug 13, 2026
@groupthinking
groupthinking marked this pull request as ready for review August 29, 2026 06:46
@groupthinking
groupthinking merged commit d6030b5 into main Aug 29, 2026
37 of 40 checks passed
@groupthinking
groupthinking deleted the one-click-deploysh-is-non-functional-stale-precheck-grv-195-77d4 branch August 29, 2026 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

one-click-deploy.sh is non-functional: stale precheck paths and a Node/Python image mismatch

1 participant